"GOTO Copenhagen 2014 is designed for software developers, IT architects, agilists, product owners and project managers who want to go into depth with one or more subject areas e.g. Java, .Net, JavaScript, Web, Mobile, Cloud, Lean/Agile, and Architecture. Each training offers a chance to develop your skills and become more effective in your work. The conference includes 8-12 daily trainings. You can choose to sign up for just one training, a two-day-training, or join one training each day– it’s completely up to you! Our trainers are authors, experts and practitioners across various areas of software development so you get a chance to learn from and network with the best".

Workshop: "Java 8 Workshop"

Track: Java 8 Workshop / Time: Tuesday 09:45 - 17:30 / Location: Room 1

Why take this course?

Java 8 encourages a different style of programming that:
- lets you cope for requirement changes (less engineering efforts!)
- lets you take advantages of multi-core architecture easily (faster code!)
- lets you process large collections with SQL-like operations (do more in less time!)
- lets you write more concise code (better readability & maintainability!)

In this one-day workshop you learn how to make use of new Java 8 features (lambdas, method references, streams, default methods etc) to achieve all of the above.

The course will contain lectures, quizzes, live coding examples and unit test exercises. The workshop is structured as follows and based on the upcoming book "Java 8 Lambdas in Action": http://manning.com/urma/

1) Why you should care about Java 8?
- Big data & multi-core
- Functional programming

2) Behaviour as data
- Coping with requirement changes
- Behaviour parameterisation
- Anonymous classes
- Real word examples: comparator, runnable & GUI events

3) Lambda expressions
- Syntax
- Where and how to use them
- Putting in practice: Execute around pattern
- Using functional interfaces
- Type checking, type inference & restrictions
- Method references

4) Streams
- Processing collections with SQL-like operations
- Streams vs Collections: laziness & internal iteration
- Filtering & slicing
- Finding & matching
- Mapping: map & flatMap
- Reducing
- Numeric streams: primitive specialisations & ranges
- Building streams
- Infinite streams

5) Collecting Data
- Pre-defined Collectors
- Grouping
- Partitioning

6) Optional
- Patterns for avoiding null-checking

7) Default methods
- Evolving APIs
- Default methods in a nutshell
- Application of default methods
- Multiple inheritance: rules

 

Raoul-Gabriel Urma, PhD at Cambridge University and author of upcoming book "Java 8 in Action"

Raoul-Gabriel Urma

Biography: Raoul-Gabriel Urma

Raoul-Gabriel Urma has worked as a software engineer for Oracle's Java Platform Group, Google's Python team, Ebay, and Goldman Sachs as well as worked for several startup projects. He’s an author of the upcoming book “Java 8 in Action” published by Manning. He's currently completing a PhD in Computer Science at the University of Cambridge where he does research in programming languages. In addition, Raoul-Gabriel is a regular speaker at major Java conferences (Devoxx, Fosdem etc) as well as an instructor.
 
http://urma.com/
@raoulUK